<?php

namespace app\common\model;

use think\Model;

class Sort extends Model
{
    //获取分类列表数据
    public function getsortlist()
    {
        $cate_list = $this->order('listorder', 'desc')->where('fid', 0)->select();
        return $cate_list->toArray();
    }
    //获取分类菜单样式
    public function get_Sort_menu(){
        $cate_list = $this->order('listorder', 'desc')->where('fid',0)->where('is_menu','1')->select();
        foreach ($cate_list as $key=>$value){
            $d_list = $this->where('fid',$value['Id'])->where('is_menu','1')->select();
            if($d_list->count() > 0){
                $cate_list[$key]['son'] = $d_list;
            }
        }
        return $cate_list->toArray();
    }
    //api
    public function api_sortlist()
    {
        $cate_list = $this->order('listorder', 'desc')->select();
        $list_number = $this->count();
        $msg = '';
        if ($cate_list->isEmpty()) {
            $msg = '暂无数据';
        }
        return json_l($cate_list->toArray(), $list_number, $msg);
    }

    //添加分类
    public function add($info)
    {
        //检测别名是否重复
        if ($this->where('alias', $info['alias'])->find()) {
            return false;
        }
        if ($this->save($info)) {
            return true;
        }
        return false;
    }
    //更新分类
    public function up($info)
    {

        if ($this->isUpdate(true)->save($info, ['Id' => $info['Id']])) {
            return true;
        }
        return false;
    }
    //获取分类详细信息
    public function gets($alias)
    {
        $info = $this->where('alias', $alias)->find();
        if ($info) {
            return $info;
        }
        return false;
    }
    //获取分类详细信息
    public function gets_id($id)
    {
        $info = $this->where('Id', $id)->find();
        if ($info) {
            return $info;
        }
        return false;
    }
    //获取二级分类列表
    public function gets_c($alias)
    {
        //获取一级分类信息
        $sort_a = $this->where('alias', $alias)->find();
        //获取旗下二级分类
        $cate_list = $this->where('fid', $sort_a['Id'])->order('listorder', 'desc')->select();
        return $cate_list->toArray();
    }
    //判断是否是二级目录，如果不是返回假，如果是返回上级别名
    public function is_sort_c($alias)
    {
        $info = $this->where('alias', $alias)->find();
        if ($info['fid'] != 0) {
            $s = $this->where('Id', $info['fid'])->find();
            return $s['alias'];
        }
        return false;
    }

    public function del_one($id)
    {
        $num = $this->where('fid', $id)->count();
        if ($num > 0) {
            return '有下级无法删除';
        }
        $q_num = Question::where('type', $id)->count();
        if ($q_num > 0) {
            return '分类下有题库无法删除！';
        }
        if ($this->where('Id', $id)->delete()) {
            return true;
        }
        return '删除失败';
    }
    public function del_all()
    {
        $num = Question::count();
        if ($num > 0) {
            return '请先清空题库在进行删除！';
        }
        if ($this->where('Id', ">", 0)->delete()) {
            return true;
        }
        return '删除失败';
    }
}
